
import os
import subprocess
from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip
import math

# 读取视频文件
video = VideoFileClip("input/tmp.mp4")

print(f"视频时长：{video.duration}s")
print(f"视频大小：{video.size[0]}x{video.size[1]}")

# 创建文字水印
watermark_text = "这是水印文字"  # 替换为你的水印文本
font_size = 50  # 增大字体大小，可以根据视频分辨率调整

# 创建 TextClip 对象作为水印
watermark = TextClip(watermark_text, fontsize=font_size,
                     color='white', font='Arial-Bold')

# 设置水印的位置，左下角，并增加偏移量以避免遮挡
watermark = watermark.set_position(("left", "bottom")).margin(
    bottom=10, left=10)  # 设置水印距离视频底部和左边的距离

# 设置水印的持续时间和起始时间
watermark = watermark.set_duration(video.duration).set_start(0)

# 调整水印大小，水印宽度为视频宽度的 10%
watermark = watermark.resize(width=math.floor(video.size[0] * 0.1))

# 如果字体太大或太小，可以动态计算合适的尺寸
# watermark = watermark.resize(width=video.size[0] // 10)  # 设置宽度为视频宽度的 10%

# 创建最终视频，并将水印添加到视频中
final_video = CompositeVideoClip([video, watermark])

# 导出最终的视频
output_video = "out/run_water_mark.mp4"  # 输出文件名
final_video.write_videofile(output_video, codec="libx264", fps=video.fps)


print(f"水印已成功添加到视频，输出文件: {output_video}")
